]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
st/widget: Include the shadow in the paint volume
authorDaniel van Vugt <daniel.van.vugt@canonical.com>
Thu, 24 Jun 2021 11:06:33 +0000 (19:06 +0800)
committerMarge Bot <marge-bot@gnome.org>
Tue, 29 Jun 2021 22:32:24 +0000 (22:32 +0000)
Having an inaccurate paint volume didn't matter until ae338af1e8, but
after that having too small a paint volume resulted in apparent clipping.
Not because `clip_to_allocation` is set, but because the offscreen
framebuffer is sized to fit the paint volume only.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1897>

src/st/st-widget.c

index 05a2dd134b0f67112286804db146ca62818702bf..644b8e25af0536947a5d8e8f01632ad0bc45c91e 100644 (file)
@@ -794,6 +794,16 @@ st_widget_get_paint_volume (ClutterActor *self,
   if (!clutter_actor_get_clip_to_allocation (self))
     {
       ClutterActor *child;
+      StShadow *shadow_spec = st_theme_node_get_text_shadow (theme_node);
+
+      if (shadow_spec)
+        {
+          ClutterActorBox shadow_box;
+
+          st_shadow_get_box (shadow_spec, &alloc_box, &shadow_box);
+          clutter_paint_volume_union_box (volume, &shadow_box);
+        }
+
       /* Based on ClutterGroup/ClutterBox; include the children's
        * paint volumes, since they may paint outside our allocation.
        */